/*
 * Fernanda Ibarrola - 0711920
 * Luiza Silva       - 0810905
 *
 */


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include "hash.h"
#include "paciente.h"


int hashFunc (int key)
{
	/* using the multiply method */
	double fracPart;
	double intPart;
	int index; 
	int m = 64919; /* inteiro primo chutado */
	double A = (sqrt(5)-1)/2; /* isso e chutado */

	fracPart = modf(key*A, &intPart);
			
	index = (int) (fracPart*m);

	return index;
} 


void** criaVetor (int tamMax)
{
       int i;

       void** hashTable = (void**)malloc(tamMax*sizeof(void*));
       
       if (!hashTable) {
               printf("Erro na alocacao.\n");
               exit(1);
       }

	for (i=0; i<tamMax; i++) {
		hashTable[i] = NULL;
	}
       
        return hashTable;
}


void hashCol (Paciente* cabecaLista, Paciente* novoPaciente)
{
	Paciente* aux = cabecaLista;
	
	/* Procura o paciente que tem o ->próximo nulo. */
	while (aux->prox != NULL)
		aux = aux->prox;

	cabecaLista->colisao++;
	
	aux->prox = novoPaciente;
}
